/**
 * @file esp8266.h
 * @author TimeChicken (https://gitee.com/Time--Chicken)
 * @brief ESP-01 模块 参考别人STM32F1移植的
 * @version 0.1
 * @date 2021-11-09
 * 
 * @copyright Copyright (c) 2021
 * 
 */
#ifndef __ESP8266_H
#define __ESP8266_H

#include <stm32f4xx.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include "usart.h"

//WIFI信息宏
#define WIFI_SSID "DESKTOP-SE45L4B 9162"
#define WIFI_PASSWORD "&55Ay292"
#define WIFI_DEBUG 0

//变量声明
extern volatile uint32_t
    esp8266_transparent_transmission_sta; //透传模式标志位

int32_t esp8266_init(void);                                      //模块初始化
void esp8266_send_str(char *buf);                                //向串口3发送字符串
void esp8266_send_at(char *str);                                 //向串口3发送发送AT指令
int esp8266_find_str_in_rx_packet(char *str, uint32_t timeout);  //查找接收数据包串
int esp8266_entry_transparent_transmission(void);                //进入透传模式
int esp8266_exit_transparent_transmission(void);                 //退出透传模式
int esp8266_connect_ap(char *ssid, char *pswd);                  //连接AP热点
int esp8266_connect_server(char *mode, char *ip, uint16_t port); //使用指定协议(TCP/UDP)连接到服务器
int esp8266_disconnect_server(void);                             //断开服务器的连接
int esp8266_check_connection_status(void);                       //检查服务器连接状态
int esp8266_enable_echo(uint32_t b);                             //回显打开或关闭
int esp8266_check(void);                                         //检查ESP8266是否正常
int esp8266_reset(void);                                         //复位esp8266

#endif /* __ESP8266_H */
